package modelo;

import java.awt.Color;

public class Buque extends ResistenciaSimple {
	private static final Color COLOR_BUQUE = new Color(220,220,220);
	private static final Color COLOR_BUQUE_DESTRUIDO = new Color(192,192,192);

	public Buque(String direccion, String orientacion, Posicion posIni) {
		super(direccion, orientacion, posIni);		
		for (BloqueDeNave bloque: partes) {
			bloque.setColor(COLOR_BUQUE);
			bloque.setColorDestruido(COLOR_BUQUE_DESTRUIDO);
		}
	}
	
	// un impacto en cualquier parte de la nave la destruye por completo.
	
	private void destruirBuqueEntero() {
		for(BloqueDeNave bloque: partes) {
			bloque.recibeDanio();
		}
	}
	
	@Override
	public void recibirDisparo(Posicion posicion) {
		for(BloqueDeNave bloque: partes) {
			if (bloque.getPosicion().equals(posicion)) {
				destruirBuqueEntero();
			}
		}
	}
	
	@Override
	public void recibirExplosion(Mina mina) {
		OndaExpansiva ondaExpansiva = mina.obtenerOndaExpansiva();
		for(BloqueDeNave bloque: partes) {
			if (ondaExpansiva.destruyePosicion(bloque.getPosicion())) {
				destruirBuqueEntero();
			}
		}
	}

	@Override
	protected int devolverTamanio(){
		return 4;
	}	
}
